# -*- coding: utf-8 -*-
from contenidos.models import Contenido
from datos_taxonomicos.models import DatoTaxonomico, Especie
from django.core import urlresolvers
from django.db import models
from easy_thumbnails.fields import ThumbnailerImageField
from estados_de_conservacion.models import EstadoConservacion
from expertos.models import Experto
from tipos_migracion.models import TipoMigracion

# Create your models here.

class FuenteExterna(models.Model):
    nombre = models.CharField(max_length=200)
    url = models.URLField()
    descripcion = models.CharField(max_length=200,blank=True,null=True)
    
    def get_absolute_url(self):
        return urlresolvers.reverse('detalles_especie:fuente_update', args=(self.pk,))
    
    def __unicode__(self):
        return self.nombre


class DetalleEspecie(models.Model):
    nombre = models.CharField(max_length=100,verbose_name = '*Nombre Común de la Especie')
    caracteristicas = models.TextField(verbose_name = 'Características de la Especie',blank = True,null = True)
    #relacion con tipo migracion
    tipo_migracion = models.ForeignKey(TipoMigracion,verbose_name = 'Tipo de Migración')
    #relacion con fuentes externas
    fuentes =  models.ManyToManyField(FuenteExterna,blank=True,null=True,verbose_name = 'Otros Fuentes Externas(URLs)')
    #relacion con estado
    estado = models.ForeignKey(EstadoConservacion,verbose_name='Estado de Conservación de la Especie' )
    #relacion con contenido, solo debe ser del tipo imagen
    imagen = ThumbnailerImageField(upload_to='imagenes', blank = True)
    
    sonido = models.FileField(upload_to='sonidos',blank = True)
    #relacion uno a uno a Datos Taxonimicos
    datos = models.OneToOneField(Especie,verbose_name='Dato Taxonómico Especie') #campo requerido, obligatorio
    
    creador = models.ForeignKey(Experto,blank=True,null=True,related_name='creador_de_especie' )
    
    aprobado = models.NullBooleanField(blank=True,null=True)
    def get_absolute_url(self):
        return urlresolvers.reverse('detalles_especie:detalle_editar', args=(self.pk,))
    
    def __unicode__(self):
        return self.nombre

    def referencia_al_link(self):
        return '/especies/' + str(self.id)
    
    def en_detalle_html(self):
        datos = [
                 u'Nombre Común: ' + self.nombre,
                 u'Características: ' + self.caracteristicas,
                 u'Estado de Conservación : %s' % self.estado, 
                 u'Tipo de Migración : %s' % self.tipo_migracion
                 ]
        return datos


class FechaCreacion(models.Model):
    especie = models.OneToOneField(DetalleEspecie,blank=True,null=True)
    fecha = models.DateTimeField(blank=True,null=True,auto_now=True)

    
#    def __init__(self,nombre,url,descrip):
#        self.nombre = nombre
#        self.url = url
#        self.descripcion = descrip
    
